home *** CD-ROM | disk | FTP | other *** search
- *---------------------------------------
- *
- * âvâîâCâäü[æÇì∞
- *
- * by Shiroh Nakaya
- *
- *---------------------------------------
-
- *---------------------------------------
- * ê┌ô«
- *
- * ê°Éö
- * é`éPüüÄ⌐âLâââëâfü[â^ɵô¬âAâhâîâX
- * é`éQüüæèÄΦâLâââëâfü[â^ɵô¬âAâhâîâX
- * é`éRüüâXâeâBâbâNôⁿù═ö╗ÆΦâïü[â`âô
- * é`éUüüë╝æzâXâNâìü[âïâîâWâXâ^î╗ì▌Æl
- * écéVüüéoébéfâZâOâüâôâgâfü[â^
- *
- H_CTRL .macro
- jsr (a3) * âWâçâCâXâeâBâbâNÅ≤æ╘é≡écéOé╔ĵô╛
- move.b d0,d6 * âXâeâBâbâNîƒì╕é╠ê╫ò█æ╢
-
- cmpi.w #2,C_M_F(a1) * é╠é»é╝éΦÆåüAâKü[âhÆå
- bge 2f * üiÆ┤üjòKÄEïZÆåé═âgâèâKæÇì∞é≡Ä≤é»òté»é╚éó
- cmpi.w #1,C_AM_F(a1) * ïZé╠Åoì█é╞âtâHâìü[âXâïü[Æåéαô»é╢é¡
- bne 2f
-
- btst #6,d0
- bne 1f
- tst.w C_B_JOY(a1) * æOë±âïü[âvé⌐éτâgâèâKé¬ëƒé│éΩé╜é▄é▄é╚éτé╬
- bne 2f * ìUîéèJÄnÅêù¥é╡é╚éó
- move.w #1,C_B_JOY(a1) * âgâèâKÅ≤æ╘ò█æ╢
- lea.l CHARA_DATA(a1),a3
- clr.w C_M_F(a3) * é▒é┐éτé╠ìUîéö╗ÆΦé≡ï¡ÉºôIé╔Å┴é╖
- cmpi.w #63,C_K(a1) * æ╠ù═é¬éUéRê╚ë║é╚éτÆ┤òKÄEïZö¡ô«ë┬
- bhi @f
- btst #5,d0 * é`éaô»Ä₧ëƒé╡é┼Æ┤òKÄEïZö¡ô«
- bne @f * éPü^éUéOòbé╠îδì╖éαïûé│é╚éóé╠é═âLâcâCé⌐
- move.w C_SSA_F(a1),C_M_F(a1)
- clr.w C_ANI_WC(a1)
- clr.w C_CNT(a1)
- move.w #4,C_AK_F(a1)
- clr.w C_AM_F(a1)
- move.l C_A_DT(a1),C_A_D(a1) * âéü[âVâçâôâfü[â^ĵô╛
- addi.l #24,C_A_D(a1)
-
- V_WAIT
- move.b #$60,$00e82601 * ëµû╩ê├ô]üiâOâëâtâBâbâNénéeéeüj
-
- move.b #1,$00e92001 * é`écéoébélÆΓÄ~
- move.b #$20,$e840c7 * écélé`ébô«ì∞ÆåÆfüiÉ╝É∞æPÄiÄüé╠Æmîbüj
- 4:
- tst.b OPM_DATA
- bmi 4b
- move.b #$1b,OPM_REG_NO * âNâìâbâNÉ▌ÆΦ
- bclr #7,OPM_DATA
- move.b #$08,$00e9a005 * âTâôâvâèâôâOâîü[âgÉ▌ÆΦ
- move.b #$80,$00e840c4 * écélé`ébÉ▌ÆΦ
- move.b #$04,$00e840c6
- move.b #$05,$00e840e9
- move.b #$01,$00e840ed
- move.b #$05,$00e840f1
- move.b #$72,$00e840c5
- st $00e840c0
- move.l #adpcm_data+KO,$00e840cc * ô]æùî│âAâhâîâX
- move.l #$00e92003,$00e840d4 * ô]æùɵâAâhâîâXü@é╖é╚éφé┐é`écéoébél
- move.w #2880,$00e840ca * ô]æùâTâCâY
- move.b #$88,$00e840c7 * ô]æùèJÄn
- move.b #2,$00e92001 * é`écéoébélö¡É║èJÄn
-
- move.w #20-1,d0
- 4:
- V_WAIT
- dbra d0,4b
-
- move.b #$6f,$00e82601 * ëµû╩é≡û▀é╖üiâOâëâtâBâbâNénémüj
-
- movea.l C_PCM_D(a1),a4 * é`écéoébélö¡ë╣ùvïü
- lea.l 40(a4),a4
- tst.l (a4)
- beq 2f
- tst.l go_adpcm
- beq 3f
- movea.l go_adpcm,a3
- move.w PCM_P(a4),d0
- cmp.w PCM_P(a3),d0
- blt 2f
- 3:
- move.l a4,go_adpcm
-
- bra 2f
- @@:
- eori.b #$ff,d0 * âîâoü[æÇì∞é┼ïZé≡æIæ≡
- move.w d0,d2 * òKÄEïZÅêù¥é╠ê╫é╔ò█æ╢
- andi.w #$03,d0 * âCâôâfâbâNâXé╔òsòKùvé╚âfü[â^é≡ìφÅ£
- bne @f * Åcò√îⁿôⁿù═é≡ùDɵ
- lsr.w #2,d2 * âîâoü[æOôⁿéΩü{éaé┼òKÄEïZ
- andi.w #$03,d2
- beq @f * ëíò√îⁿôⁿù═û│é╡é╠ÅΩìçé═òüÆ╩é╔ìUîé
- subq.w #1,d2 * éPî╕ÄZé┼ì╢ëEîⁿé½âtâëâOé╞ïté╚éτé╬
- cmp.w C_LR_F(a1),d2 * âîâoü[æOôⁿéΩé╔é╚éΘ
- beq @f
- move.w C_SA_F(a1),C_M_F(a1)
- clr.w C_ANI_WC(a1)
- clr.w C_CNT(a1)
- move.w #3,C_AK_F(a1)
- clr.w C_AM_F(a1) * ô«ì∞Æåé╔ìUîéé≡ÉHéτéªé╬âJâEâôâ^ü[
- move.l C_A_DT(a1),C_A_D(a1) * âéü[âVâçâôâfü[â^ĵô╛
- addi.l #18,C_A_D(a1)
- movea.l C_PCM_D(a1),a4 * é`écéoébélö¡ë╣ùvïü
- lea.l 30(a4),a4
- tst.l (a4)
- beq 2f
- tst.l go_adpcm
- beq 3f
- movea.l go_adpcm,a3
- move.w PCM_P(a4),d0
- cmp.w PCM_P(a3),d0
- blt 2f
- 3:
- move.l a4,go_adpcm
- bra 2f
- @@:
- movea.l C_A_DT(a1),a0 * âéü[âVâçâôâfü[â^é≡ĵô╛
- move.w d0,d1
- beq @f
- add.w d0,d0 * écéPé≡ï]É╡é╔é╡é─écéOé≡éUö{
- add.w d1,d0 * é╞é═éóéªécéPé═îπé┼âfü[â^âZâbâgé╔ùpéóéΘ
- add.w d0,d0
- adda.w d0,a0
- @@:
- move.l a0,C_A_D(a1) * èeÄφâfü[â^âZâbâg
- move.w #1,C_M_F(a1)
- clr.w C_ANI_WC(a1)
- clr.w C_AM_F(a1)
- move.w d1,C_AK_F(a1)
-
- movea.l C_PCM_D(a1),a4 * é`écéoébélö¡ë╣ùvïü
- move.w d1,d0 * écéOé≡éPéOö{
- lsl.w #3,d0
- add.w d1,d1
- add.w d1,d0
- adda.w d0,a4
- tst.l (a4)
- beq 2f
- tst.l go_adpcm
- beq @f
- movea.l go_adpcm,a3
- move.w PCM_P(a4),d0
- cmp.w PCM_P(a3),d0
- blt 2f
- @@:
- move.l a4,go_adpcm
- bra 2f
- 1:
- clr.w C_B_JOY(a1)
- 2:
- move.w C_M_F(a1),d0 * ô«ì∞âtâëâOé╔éµéΦèeìsô«é╓
- add.w d0,d0
- add.w d0,d0
- lea.l flag_bra(pc),a0
- movea.l 0(a0,d0.w),a0
- jsr (a0)
- movea.l C_PCG_D(a1),a0
- jsr (a0) * âXâvâëâCâgôoÿ^
-
- movea.l a1,a3 * ìUîéö╗ÆΦÅêù¥
- lea.l CHARA_DATA(a1),a1
- tst.w C_M_F(a1)
- beq 3f
- HIT_C * ôûé╜éΦö╗ÆΦ
- beq 3f
-
- cmpi.w #6,C_M_F(a2) * æèÄΦé¬é│é╬é½é≡é╡é─éóé╜éτ
- bne 1f * ìUîéö╗ÆΦé¬Å┴é│éΩéΘ
- movea.l C_A_D(a2),a0
- move.w (a0),d0
- cmp.w C_CNT(a2),d0 * é│é╬é½Ä≤é»òté»Ä₧è╘
- blt 1f
- clr.w C_M_F(a1)
- clr.w C_M_F(a2) * ìUîéé≡é│é╬é⌐éΩé╜Ä₧ô_é┼æèÄΦé═æªìsô«ë┬ö\
- clr.w C_CNT(a2)
- move.w #1,C_AM_F(a2)
-
- movea.l C_PCM_D(a2),a4 * é`écéoébélö¡ë╣ùvïü
- lea.l 130(a4),a4
- tst.l go_adpcm
- beq 2f
- movea.l go_adpcm,a3
- move.w PCM_P(a4),d0
- cmp.w PCM_P(a3),d0
- blt 3f
- 2:
- move.l a4,go_adpcm
- bra 3f
- 1:
- cmpi.w #2,C_M_F(a1) * âKü[âhòsö\ïZé╛é┴é╜ÅΩìçé═ùLû│é≡
- bne @f * éóéφé│é╕âqâbâg
- move.w #4,C_HIT_C(a2) * é┬éóé┼é╔Éüé½ö≥é╘
- bra 1f
- @@:
- cmpi.w #4,C_M_F(a2) * âKü[âhé│éΩé╜Ä₧é╠Åêù¥
- bne 1f
- move.w C_LR_F(a2),d0 * öwîπé⌐éτé╠ìUîéé═âKü[âhòsë┬
- cmp.w C_LR_F(a3),d0
- bne @f
- bra 1f
- @@:
- move.w C_CNT(a1),C_CNT(a2) * ö╜ô«Ä₧è╘
- subq.w #1,C_K(a2) * âKü[âhé╡é─éαéPâhâbâgé╠âPâYâè
- bpl 2f
- move.w #2,C_M_F(a2)
- move.w #60,C_CNT(a2)
- movea.l C_PCM_D(a2),a4 * éjénÄ₧é`écéoébélö¡ë╣ùvïü
- lea.l 150(a4),a4 * move.l 90(a4),go_adpcméµéΦé▒é┴é┐
- move.l a4,go_adpcm * é╠ò√é¬æ¼éó
- 2:
- clr.w C_M_F(a1)
- lea.l ETC_DATA(a1),a1 * âPâYâèâ}ü[âNôoÅΩ
- move.w C_X(a2),C_X(a1)
- move.w C_Y(a2),C_Y(a1)
- move.w #2,C_M_F(a1)
- clr.w C_ANI_WC(a1)
- clr.w C_CNT(a1)
- bra 3f
-
- 1:
- move.w #2,C_M_F(a2) * æèÄΦé≡é╠é»é╝éτé╣éΘ
- addq.w #1,C_HIT_C(a2)
- move.w C_HIT_F(a1),C_HIT_F(a2)
- clr.w C_M_F(a1)
- move.w C_CNT(a1),d0 * é╠é»é╝é┴é─éóéΘÄ₧è╘
- move.w C_K(a1),d1
- tst.w C_AM_F(a2)
- bne 1f * âJâEâôâ^ü[é┼ôûé╜é┴é╜é╚éτ
- asr.w #1,d1 * â_âüü[âWéPüDéTö{üI
- add.w C_K(a1),d1
- add.w d0,d0 * é╠é»é╝éΦÄ₧è╘é═éQö{üI
- 1:
- sub.w d1,C_K(a2) * æèÄΦé╠æ╠ù═é≡î╕éτé╖
- bpl 1f
- move.w #60,C_CNT(a2)
- movea.l C_PCM_D(a2),a4 * éjénÄ₧é`écéoébélö¡ë╣ùvïü
- lea.l 150(a4),a4 * move.l 90(a4),go_adpcméµéΦé▒é┴é┐
- move.l a4,go_adpcm * é╠ò√é¬æ¼éó
- bra 2f
- 1:
- move.w d0,C_CNT(a2)
- 2:
- clr.w C_ANI_WC(a2)
- lea.l ETC_DATA(a1),a1 * âqâbâgâ}ü[âNôoÅΩüI
- move.w C_X(a2),C_X(a1)
- move.w C_Y(a2),C_Y(a1)
- move.w #1,C_M_F(a1)
- clr.w C_ANI_WC(a1)
- clr.w C_CNT(a1)
-
- movea.l C_PCM_D(a3),a4 * é`écéoébélö¡ë╣ùvïü
- lea.l 100(a4),a4
- move.w C_AK_F(a3),d0
- move.w d0,d1 * écéOé≡éPéOö{
- lsl.w #3,d0
- add.w d1,d1
- add.w d1,d0
- adda.w d0,a4
- tst.l (a4)
- beq 3f
- tst.l go_adpcm
- beq 2f
- movea.l go_adpcm,a1
- move.w PCM_P(a4),d0
- cmp.w PCM_P(a1),d0
- blt 3f
- 2:
- move.l a4,go_adpcm
- 3:
- .endm
- *---------------------------------------
- * âqâbâgâ}ü[âNò\Ī
- *
- * ê°Éö
- * é`éPüüÄ⌐âLâââëâfü[â^ɵô¬âAâhâîâX
- * é`éUüüë╝æzâXâNâìü[âïâîâWâXâ^î╗ì▌Æl
- * écéVüüéoébéfâZâOâüâôâgâfü[â^
- *
- H_DISP .macro
- addq.w #1,C_ANI_WC(a1)
- andi.w #$0003,C_ANI_WC(a1) * éPâRâ}éSü^éUéOòb
- bne 1f
- addq.w #1,C_CNT(a1)
- andi.w #$0003,C_CNT(a1)
- bne 1f
- clr.w C_M_F(a1)
- bra @f
- 1:
- move.w C_X(a1),d1
- subq.w #8,d1
- move.w C_Y(a1),d2
- subq.w #8,d2
- cmpi.w #2,C_M_F(a1)
- beq 1f
- add.w C_CNT(a1),d7
- 1:
- move.w d1,(a6)+ * ë╝æzâXâNâìü[âïâîâWâXâ^é╓ôoÿ^
- move.w d2,(a6)+
- move.w d7,(a6)+
- move.w #$0003,(a6)+
- @@:
- .endm
- *---------------------------------------
- * æ╠ù═ò\Ī
- *
- * ê°Éö
- * é`éPüüÄ⌐âLâââëâfü[â^ɵô¬âAâhâîâX
- * é`éQüüæ╬ë₧é╖éΘâLâââëâfü[â^ɵô¬âAâhâîâX
- * é`éUüüë╝æzâXâNâìü[âïâîâWâXâ^î╗ì▌Æl
- * écéPüüò\Īéwì└òW
- * écéVüüéoébéfâfü[â^
- *
- VI_DISP .macro
- move.w C_Y(a1),d2
- cmp.w C_K(a2),d2
- beq @f
- subq.w #1,d2
- bpl @f
- clr.w d2
- @@:
- move.w d2,C_Y(a1)
- addi.w #16,d2
- move.w d1,(a6)+ * ë╝æzâXâNâìü[âïâîâWâXâ^é╓ôoÿ^
- move.w d2,(a6)+
- move.w d7,(a6)+
- move.w #$0003,(a6)+
- .endm
- *---------------------------------------